package com.caifu.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.caifu.pojo.BmCouponsRecord;
import com.caifu.pojo.ExcelData;
import com.caifu.vo.DataVo;
import org.apache.ibatis.annotations.Param;

import java.util.HashSet;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 优惠券来源消费记录 Mapper 接口
 * </p>
 *
 * @author tww
 * @since 2020-10-16
 */
public interface CouponsRecordMapper extends BaseMapper<BmCouponsRecord> {


    List<Map<String, Object>> getCurrentMonth(String flag);

    Integer getGrantNum(@Param("type") String type, @Param("hairCut") String hairCut,@Param("orgIds") HashSet<Long> orgIds);

    /**
     * 获取核销总数
     *
     * @return
     */
    Integer getPinRate(Map<String, Object> params);

    /**
     * 获取发放总数
     *
     * @return
     */
    Integer getGrant(Map<String, Object> params);

    /**
     * 获取核销总数
     *
     * @return
     */
    Integer getPinRate2(Map<String, Object> params);

    /**
     * 获取发放总数
     *
     * @return
     */
    Integer getGrant2(Map<String, Object> params);

    /**
     * 获取核销总数
     *
     * @return
     */
    Integer getPinRate3(Map<String, Object> params);

    /**
     * 获取发放总数
     *
     * @return
     */
    Integer getGrant3(Map<String, Object> params);

    /**
     * 获取核销总数
     *
     * @return
     */
    Integer getPinRate4(Map<String, Object> params);

    /**
     * 获取发放总数
     *
     * @return
     */
    Integer getGrant4(Map<String, Object> params);

    /**
     * 获取核销总数
     *
     * @return
     */
    Integer getPinRate5(Map<String, Object> params);

    /**
     * 获取发放总数
     *
     * @return
     */
    Integer getGrant5(Map<String, Object> params);

    /**
     * 获取核销总数
     *
     * @return
     */
    Integer getPinRate6(Map<String, Object> params);

    /**
     * 获取发放总数
     *
     * @return
     */
    Integer getGrant6(Map<String, Object> params);

    /**
     * 获取所有发放总数
     * @return
     */
    Integer getCountGrant(Map<String, Object> params);


    /**
     * 获取理发店本月、本年核销
     *
     * @param params
     * @return
     */
    List<DataVo> getPinByType(Map<String, Object> params);

    /**
     * 获取近12月理发、缝纫核销
     * @param map
     * @return
     */
    List<Integer> getLast12Months(Map<String, Object> map);

    /**
     * 获取导出数据
     * @return
     */
    List<ExcelData> getExcelData(Map<String, Object> params);

    /**
     * 获取所有月份总核销数
     * @return
     */
    int getCountPins(Map<String, Object> params);


    int getWriteoffNum(@Param("type") String type, @Param("hairCut") String hairCut,@Param("orgIds") HashSet<Long> orgIds);

    /**
     * 获取导出数据2
     * @return
     */
    List<ExcelData> getExcelData2(Map<String, Object> map);
}
